home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
vol_400
/
420_01
/
pic.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-02-21
|
1KB
|
66 lines
/*
// Pic.cc -- pic$@%U%)!<%^%C%H2hA|$r07$&(J
//
// created in 3/1/1993
// revised in 2/13/1994
*/
#ifndef _PIC_H_
#define _PIC_H_
#include "defs.h"
#define PicBitWrite(Size,Value) {\
int ii, Rest, Cache;\
Rest = Size;\
Cache = Value;\
Cache <<= 32 - Rest;\
while ( Rest > BitLength ) {\
for ( ii = 0; ii < BitLength; ii++ ) {\
*BitBufferPointer = *BitBufferPointer + *BitBufferPointer + (Cache < 0);\
Cache = Cache + Cache;\
Rest--;\
}\
PicWriteBufferNext();\
}\
for ( ii = 0; ii < Rest; ii++ ) {\
*BitBufferPointer = *BitBufferPointer + *BitBufferPointer + (Cache < 0);\
Cache = Cache + Cache;\
BitLength--; } }
#define PicBitLoad(Size) {\
int ii, Rest;\
PicWord = 0;\
Rest = Size;\
while ( Rest > BitLength ) {\
for ( ii = 0; ii < BitLength; ii++ ) {\
PicWord <<= 1;\
if ( *BitBufferPointer & 0x80 )\
PicWord++;\
*BitBufferPointer <<= 1;\
Rest--;\
}\
PicBufferNext();\
}\
for ( ii = 0; ii < Rest; ii++ ) {\
PicWord <<= 1;\
if ( *BitBufferPointer & 0x80 )\
PicWord++;\
*BitBufferPointer <<= 1;\
BitLength--; } }
extern void PicLoad();
extern void PicSave();
extern void PicBufferNext();
extern void PicBufferWriteFlush();
extern void PicWriteBufferNext();
extern void PicMarkClear();
extern unsigned char *BitBufferPointer;
extern int NoExpand;
extern uint32 PicWord;
extern unsigned char *Mark;
extern int32 PicRadix;
#endif /* _PIC_H_ */